/***************************************************************************
 *   Copyright (C) 2007 by ludo   *
 *   ludo42fr@free.fr   *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/
#include "QVlcAudio.h"
#include "QVlcInstance.h"

QVlcAudio::QVlcAudio ( QVlcInstance *instance )
		:QObject ( instance )
		,_vlcinstance ( instance )
		,_vlcexcep ( this )
{
}

QVlcException& QVlcAudio::exception()
{
  return _vlcexcep;
}

bool QVlcAudio::setMuteStatus ( bool mute )
{
  libvlc_audio_set_mute ( _vlcinstance->internalPointer(), mute,_vlcexcep.internalPointer() );
  if ( _vlcexcep.hasError() )
		return false;
	return true;
}

bool QVlcAudio::isMute()
{
	bool ret;
  ret=libvlc_audio_get_mute (  _vlcinstance->internalPointer(),_vlcexcep.internalPointer() );
  if ( _vlcexcep.hasError() )
		return false;
	return ret;
}

bool QVlcAudio::toogleMuteStatus()
{
  libvlc_audio_toggle_mute (  _vlcinstance->internalPointer(),_vlcexcep.internalPointer() );
  if ( _vlcexcep.hasError() )
		return false;
	return isMute();
}
int QVlcAudio::volume()
{
  int ret;
  ret=libvlc_audio_get_volume(  _vlcinstance->internalPointer(),_vlcexcep.internalPointer() );
  if ( _vlcexcep.hasError() )
    return 0;
  return ret;
}

bool QVlcAudio::setVolume(int v)
{
  libvlc_audio_set_volume(  _vlcinstance->internalPointer(),v,_vlcexcep.internalPointer() );
  if ( _vlcexcep.hasError() )
    return false;
  return true;
}

int QVlcAudio::channel()
{

    int ret;
    ret=libvlc_audio_get_channel(  _vlcinstance->internalPointer(),_vlcexcep.internalPointer() );
    if ( _vlcexcep.hasError() )
      return 0;
    return ret;

}

bool QVlcAudio::setChannel(int c)
{
  libvlc_audio_set_channel(  _vlcinstance->internalPointer(),c,_vlcexcep.internalPointer() );
  if ( _vlcexcep.hasError() )
    return false;
  return true;
}

